package com.zl.customer.util;

import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 日期转换器类
 * @ClassName: DateConverter
 * @author: suke
 * @since: 2021/8/4 17:14
 *
 * Converter<S,T>   S: 数据来源的数据类型  源数据类型    T: 转换之后的数据类型   目的数据类型
 *   S类型 转换 T类型
 */
public class DateConverter implements Converter<String,Date> {
    private SimpleDateFormat[]  simpleDateFormats = {
        new SimpleDateFormat("yyyy-MM-dd"),
        new SimpleDateFormat("yyyy/MM/dd"),
       new SimpleDateFormat("yyyy年MM月dd日")
    };

    @Override
    public Date convert(String source) {
        //集合的stream操作, 简化集合操作
       for(SimpleDateFormat sdf:simpleDateFormats){
           try {
               return  sdf.parse(source);
           } catch (ParseException e) { //格式不匹配
                continue;
           }
       }
       throw new RuntimeException("日期格式不对,source:"+source);
       // return null;
    }
}
